//2844.生成特殊数字的最少操作
//https://leetcode.cn/problems/minimum-operations-to-make-a-special-number
class Solution {
public:
    int minimumOperations(string num) {
        bool zero = false,five = false;
        for(int i = num.size()-1;i>=0;--i)
        {
            //如果前面有0当前数字是5 则删除 同理5也是
            if(zero&&(num[i]=='5'||num[i]=='0') || five&&(num[i]=='2'||num[i]=='7')) 
                return num.size()-i-2; //在当前下标下 找到了后面可以组成 00 50 25 75 的数
                //这个根据画图推导能得出

            //也就是说 找到前面可以组成 00 50 25 75 的数 删除中间不必要的数
            //以 00 50 25 75 结尾即可
            zero |= num[i]=='0';
            five |= num[i]=='5';
        }
        return num.size()-zero;
    }
};